﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text;
using System.IO;
using System.Data.OleDb;
using System.Data.SqlClient;


public partial class QuanTri_QuanLyLop_HocSinh : System.Web.UI.Page
{
    SoLienLacDataContext db = new SoLienLacDataContext();
    SoLienLacDienTu cls = new SoLienLacDienTu();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["Username"] == null || Session["Username"].ToString() == "")
        {
<<<<<<< .mine
            Response.Redirect("~/GiaoDienClient/TrangChu.aspx");
        }
        else
        {
            if (!IsPostBack)
            {
                //if (TabContainer1.TabIndex == 0)
                //{
=======
          
>>>>>>> .r6
                cls.LoadddlKhoiHoc(ddlKhoi1);
                LoadNamMoi(ddlNam1);
                LoadLopMoi(ddlLop1, ddlKhoi1);
                lblSiSo.Text = LaySiSo(ddlNam1, ddlKhoi1, ddlLop1);
<<<<<<< .mine
                LayDuLieu(ddlNam1, ddlKhoi1, ddlLop1);
                //}
                //else
                //if (TabContainer1.TabIndex == 1)
                //{
=======
                LayDuLieu(ddlNam1, ddlKhoi1, ddlLop1,grvDSHS);
    
>>>>>>> .r6
                LoadNamMoi(ddlNam2);
                cls.LoadddlKhoiHoc(ddlKhoi2);
                LoadLopMoi(ddlLop2, ddlKhoi2);
                lblSS.Text = LaySiSo(ddlNam2, ddlKhoi2, ddlLop2);
                LayDuLieu(ddlNam2, ddlKhoi2, ddlLop2,grvNhapExcel);

<<<<<<< .mine
                //}
                //else
                //if (TabContainer1.TabIndex == 2)
                //{
=======
>>>>>>> .r6
                LoadNamCu();
                LoadKhoiCu();
                LoadLopCu();
                LoadNamMoi(ddlNamMoi);
                LoadKhoiMoi();
                LoadLopMoi(ddlLopMoi, ddlKhoiMoi);
<<<<<<< .mine
                SiSoLopCu.Text = LaySiSo(ddlNam, ddlKhoi, ddlLop);
                siSo.Text = LaySiSo(ddlNamMoi, ddlKhoiMoi, ddlLopMoi);
                LayDuLieu(ddlNam, ddlKhoi, ddlLop);
                //}
                //cls.LoadddlKhoiHoc(ddlKhoi1);
                //cls.LoadddlKhoiHoc(ddlKhoi2);
                //LoadKhoiMoi();
                rdoNam.Checked = true;
                txtNgaySinh.Text = DateTime.Now.ToShortDateString();
                MaTuTang();
                //LoadNamMoi(ddlNam2);
                //LoadNamMoi(ddlNam1);
                //LoadNamMoi(ddlNamMoi);
                //LoadNamCu();
                //LoadKhoiCu();
                //LoadLopMoi(ddlLop1,ddlKhoi1);
                //LoadLopMoi(ddlLop2,ddlKhoi2);
                //LoadLopMoi(ddlLopMoi,ddlKhoiMoi);
                //LoadLopCu();
                //lblSS.Text = LaySiSo(ddlNam2, ddlKhoi2, ddlLop2);
                //SiSoLopCu.Text = LaySiSo(ddlNam, ddlKhoi, ddlLop);
                //siSo.Text = LaySiSo(ddlNamMoi, ddlKhoiMoi, ddlLopMoi);
                //lblSiSo.Text = LaySiSo(ddlNam1, ddlKhoi1, ddlLop1);
                //LayDuLieu(ddlNam1, ddlKhoi1, ddlLop1);
            }
=======
               // SiSoLopCu.Text = LaySiSo(ddlNam, ddlKhoi, ddlLop);
               // siSo.Text = LaySiSo(ddlNamMoi, ddlKhoiMoi, ddlLopMoi);
               //// LayDuLieu(ddlNam, ddlKhoi, ddlLop);
       
            rdoNam.Checked = true;
            txtNgaySinh.Text = DateTime.Now.ToShortDateString();
            MaTuTang();
>>>>>>> .r6
        }
    }
    bool KiemTrabtn()
    {
        bool kt = false;
        if (grvDSHS.Rows.Count > 0)
        {
            lbtSua.Visible = true;
            lbtXoa.Visible =true;
            lbtExcel.Visible = true;
            lbtSua.Visible = true;
           // lbtDel.Visible = true;
            lbtExe.Visible = true;
            kt = true;
        }
        if (grvDSHS.Rows.Count < 0 && grvDSHS.Rows.Count == 0)
        {
            lbtSua.Visible = false;
            lbtXoa.Visible = false;
            lbtExcel.Visible = false;
            lbtSua.Visible = false;
           // lbtDel.Visible = false;
            lbtExe.Visible = false;
            kt = false;
        }
        return kt;
    }
    void LoadKhoiCu()
    {
        var c = from p in db.KhoiHocs where p.TenKhoi == "Khối 10" || p.TenKhoi == "Khối 11" select p;
        ddlKhoiCu.DataTextField = "TenKhoi";
        ddlKhoiCu.DataValueField = "MaKhoi";
        ddlKhoiCu.DataSource = c;
        ddlKhoiCu.DataBind();
    }
    void LoadNamCu()
    {
        ddlNamCu.DataTextField = "TenNam";
        ddlNamCu.DataValueField = "MaNam";
        ddlNamCu.DataSource = db.NamCu();
        ddlNamCu.DataBind();
    }
    void LoadLopMoi(DropDownList ddlLop,DropDownList ddlKhoi1)
    {
        ddlLop.DataTextField = "TenLop";
        ddlLop.DataValueField = "MaLop";
        ddlLop.DataSource = db.LoadLopHS(int.Parse(ddlKhoi1.SelectedValue.ToString()));
        ddlLop.DataBind();
    }
    void LoadNamMoi(DropDownList ddlNam)
    {
        ddlNam.DataTextField = "TenNam";
        ddlNam.DataValueField = "MaNam";
        ddlNam.DataSource = db.NamHocMoi();
        ddlNam.DataBind();
    }
    protected void ddlKhoi1_SelectedIndexChanged(object sender, EventArgs e)
    {
        LoadLopMoi(ddlLop1,ddlKhoi1);

    }
    protected void ddlLop1_SelectedIndexChanged(object sender, EventArgs e)
    {
        
                LayDuLieu(ddlNam1, ddlKhoi1, ddlLop1,grvDSHS);
                lblSiSo.Text = LaySiSo(ddlNam1, ddlKhoi1, ddlLop1);
                lbtSua.Enabled = true;
                lbtXoa.Enabled = true;
                lbtExcel.Enabled = true;
    }
    
    bool CheckSDT(string sdt)
    {
        var c = from p in db.HocSinhs select p.SDT;
        bool kt = true;
        if (sdt != "")
        {
            if (c.Count() != 0)
            {
                kt = false;
                lblThongBao.InnerText = "Số điện thoại này đã có người dùng";
            }
        }
        return kt;
    }
    void LayDuLieu(DropDownList ddlNam, DropDownList ddlKhoi, DropDownList ddlLop, GridView grv)
    {
        DataTable dt1 = new DataTable();
        dt1.Columns.Add("MaHS", typeof(string));
        dt1.Columns.Add("TenHS", typeof(string));
        dt1.Columns.Add("NgaySinh", typeof(string));
        dt1.Columns.Add("Nam", typeof(bool));
        dt1.Columns.Add("Nu", typeof(bool));
        dt1.Columns.Add("QueQuan", typeof(string));
        dt1.Columns.Add("Email", typeof(string));
        dt1.Columns.Add("SDT", typeof(string));
        var c = from p in db.Lop_HocSinhs
                where
                    p.MaLop == int.Parse(ddlLop.SelectedValue.ToString())
                select new { p.MaHS, p.HocSinh.TenHS, p.HocSinh.GioiTinh, p.HocSinh.QueQuan, p.HocSinh.NgaySinh, p.HocSinh.SDT, p.HocSinh.Email }; ;
        if (c.Count() != 0)
        {
            foreach (var con in c)
            {
                DataRow dr = dt1.NewRow();
                dr[0] = con.MaHS.ToString();
                dr[1] = con.TenHS;
                dr[2] = con.NgaySinh.ToShortDateString();
                if (con.GioiTinh == "Nam")
                {
                    dr[3] = true; dr[4] = false;
                }
                if (con.GioiTinh == "Nữ")
                {
                    dr[3] = false; dr[4] = true;
                }
                dr[5] = con.QueQuan;
                dr[7] = con.SDT;
                dr[6] = con.Email;
                dt1.Rows.Add(dr);
            }

        }
        grv.DataSource = dt1;
        grv.DataBind();
    }
    void MaTuTang()
    {
        //string txtMaGV = "";
        //lay 2 số cuối của năm hiện tại làm đầu mã
        string dau = DateTime.Now.Year.ToString();
        string cuoi = dau.Substring(2, 2);
        int nam = int.Parse(cuoi);
        string madautien = cuoi + "001";
        var c = from p in db.HocSinhs select p.MaHS;
        if (c.Count() == 0)
        {
            lblMaHS.Text = madautien;
        }
        if (c.Count() >= 1)
        {
            int max = 0;
            //string s1 = c.ToString();
            string max1;
            foreach (var con in c)
            {
                max = int.Parse(con.Trim().ToString());

            }
            max1 = (max + 1).ToString();
            lblMaHS.Text = max1;
        }
    }
    bool KiemTraMail( string mail)
    {
        bool kt = true;
        if (mail == "")
        {
            kt = false;
            lblThongBao.InnerText = "Mail không được để trống";
        }
        if (cls.CheckEmail(mail) == false)
        {
            kt = false;
            lblThongBao.InnerText = "Mail không đúng định dạng";
        }
        //var c = from p in db.CanBoGiaoViens select p.Email;
        return kt;
    }
    bool KiemSDT(string sdt)
    {
        //var c = from p in db.HocSinhs select p.SDT;
        bool kt = true;
        //if(c.Count()!=0)
        //{
        //    lblThongBao.InnerText = "Số điện thoại này đã có người dùng";
        //}
        if (sdt == "")
        {
            kt = false;
            lblThongBao.InnerText = "Không được để trống điện thoại";
        }
        if (sdt != "")
        {
            if (cls.CheckPhone(sdt) == false)
            {
                kt = false;
                lblThongBao.InnerText = "Điện thoại không đúng định dạng";
            }
        }
        return kt;
    }
    protected void btnExcel_Click(object sender, EventArgs e)
    {
        //ExportToExcel("DanhSachHS_Lop" + ddlLop1.SelectedItem.Text + ".xls");
    }
    public DataTable ToDataTable(System.Data.Linq.DataContext ctx, object query)
    {
        if (query == null)
        {
            throw new ArgumentNullException("query");
        }

        IDbCommand cmd = ctx.GetCommand(query as IQueryable);
        SqlDataAdapter adapter = new SqlDataAdapter();
        adapter.SelectCommand = (SqlCommand)cmd;
        DataTable dt = new DataTable("sd");

        try
        {
            cmd.Connection.Open();
            adapter.FillSchema(dt, SchemaType.Source);
            adapter.Fill(dt);
        }
        finally
        {
            cmd.Connection.Close();
        }
        return dt;
    }
    void xuatExcel(DataTable dt, string sheetName, string title)
    { 
        Microsoft.Office.Interop.Excel.Application oExcel=new Microsoft.Office.Interop.Excel.Application();
        Microsoft.Office.Interop.Excel.Workbooks oBooks;
        Microsoft.Office.Interop.Excel.Sheets oSheets;
        Microsoft.Office.Interop.Excel.Workbook oBook;
        Microsoft.Office.Interop.Excel.Worksheet oSheet;

        //Tạo mới một Excel WorkBook
        oExcel.Visible = true;
        oExcel.DisplayAlerts = false;
        oExcel.Application.SheetsInNewWorkbook = 1;
        oBooks = oExcel.Workbooks;

        oBook = (Microsoft.Office.Interop.Excel.Workbook)(oExcel.Workbooks.Add(Type.Missing));
        oSheets = oBook.Worksheets;
        oSheet = (Microsoft.Office.Interop.Excel.Worksheet)oSheets.get_Item(1);
        oSheet.Name = sheetName;

        // Tạo phần đầu nếu muốn
        Microsoft.Office.Interop.Excel.Range head = oSheet.get_Range("A4", "H4");
        head.MergeCells = true;
        head.Value2 = title;
        head.Font.Bold = true;
        head.Font.Name = "Tahoma";
        head.Font.Size = "18";
        head.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
        //Thông tin năm học,lớp học, sĩ số
        Microsoft.Office.Interop.Excel.Range cl = oSheet.get_Range("A5", "A5");
        cl.Value2 = "Năm học:" + ddlNam1.SelectedItem.Text;
        cl.ColumnWidth = 13.5;
        Microsoft.Office.Interop.Excel.Range cl11 = oSheet.get_Range("A6", "A6");
        cl11.Value2 = "Tên lớp:" + ddlLop1.SelectedItem.Text;
        cl11.ColumnWidth = 13.5;
        Microsoft.Office.Interop.Excel.Range cl13 = oSheet.get_Range("A7", "A7");
        cl13.Value2 = "Sĩ số:" + lblSiSo.Text;
        cl13.ColumnWidth = 13.5;
       
        Microsoft.Office.Interop.Excel.Range cl12 = oSheet.get_Range("A8", "A8");
        cl12.Value2 = "STT";
        cl12.ColumnWidth =10.0;
        // Tạo tiêu đề cột
        Microsoft.Office.Interop.Excel.Range cl2 = oSheet.get_Range("B8", "B8");
        cl2.Value2 = "Mã học sinh";
        cl2.ColumnWidth =15.0 ;

        Microsoft.Office.Interop.Excel.Range cl3 = oSheet.get_Range("C8", "C8");
        cl3.Value2 = "Tên học sinh";
        cl3.ColumnWidth = 30.0;
        //----------DM--------//
        Microsoft.Office.Interop.Excel.Range clM1 = oSheet.get_Range("D8", "D8");
        clM1.Value2 = "Ngày sinh";
        cl3.EntireColumn.NumberFormat = "*dd/mm/yyyy";
        clM1.ColumnWidth = 20.0;
        Microsoft.Office.Interop.Excel.Range clM2 = oSheet.get_Range("E8", "E8");
        clM2.Value2 = "Giới tính";
        clM2.ColumnWidth = 5.0;
        Microsoft.Office.Interop.Excel.Range clM3 = oSheet.get_Range("F8", "F8");
        clM3.Value2 = "Quê quán";
        clM3.ColumnWidth = 40.0;
        Microsoft.Office.Interop.Excel.Range clM4 = oSheet.get_Range("G8", "G8");
        clM4.Value2 = "Email";
        clM4.ColumnWidth = 20.0;
        Microsoft.Office.Interop.Excel.Range clM5 = oSheet.get_Range("H8", "H8");
        clM5.Value2 = "Số điện thoại";
        clM5.ColumnWidth = 13.0;
        //-----d15------//

        Microsoft.Office.Interop.Excel.Range rowHead = oSheet.get_Range("A8", "H8");
        rowHead.Font.Bold = true;
        // Kẻ viền
        rowHead.Borders.LineStyle = Microsoft.Office.Interop.Excel.Constants.xlSolid;
        // Thiết lập màu nền
        rowHead.Interior.ColorIndex = 15;
        rowHead.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;


        // Tạo mẳng đối tượng để lưu dữ toàn bồ dữ liệu trong DataTable,
        // vì dữ liệu được được gán vào các Cell trong Excel phải thông qua object thuần.
        object[,] arr = new object[dt.Rows.Count, dt.Columns.Count];

        //Chuyển dữ liệu từ DataTable vào mảng đối tượng
        for (int r = 0; r < dt.Rows.Count; r++)
        {
            DataRow dr = dt.Rows[r];
            for (int c = 0; c < dt.Columns.Count; c++)
            {
                arr[r, c] = dr[c];
            }
        }

        //Thiết lập vùng điền dữ liệu
        int rowStart = 9;
        int columnStart = 1;

        int rowEnd = rowStart + dt.Rows.Count - 1;
        int columnEnd = dt.Columns.Count;

        // Ô bắt đầu điền dữ liệu
        Microsoft.Office.Interop.Excel.Range c1 = (Microsoft.Office.Interop.Excel.Range)oSheet.Cells[rowStart, columnStart];
        // Ô kết thúc điền dữ liệu
        Microsoft.Office.Interop.Excel.Range c2 = (Microsoft.Office.Interop.Excel.Range)oSheet.Cells[rowEnd, columnEnd];
        // Lấy về vùng điền dữ liệu
        Microsoft.Office.Interop.Excel.Range range = oSheet.get_Range(c1, c2);

        //Điền dữ liệu vào vùng đã thiết lập
        range.Value2 = arr;

        // Kẻ viền
        range.Borders.LineStyle = Microsoft.Office.Interop.Excel.Constants.xlSolid;
        // Căn giữa cột STT
        Microsoft.Office.Interop.Excel.Range c3 = (Microsoft.Office.Interop.Excel.Range)oSheet.Cells[rowEnd, columnStart];
        Microsoft.Office.Interop.Excel.Range c4 = oSheet.get_Range(c1, c3);
        oSheet.get_Range(c3, c4).HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
 
    }
    void ExportToExcel(string fileName, DropDownList ddlLop, DropDownList ddlNam, Label SiSo)
    {
        //Response.ContentType = "application/csv";
        //Response.Charset = "";
        //Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
        //Response.ContentEncoding = Encoding.Unicode;
        //Response.BinaryWrite(Encoding.Unicode.GetPreamble());
        //DataTable dt = GetData(ddlLop);
        ////DataTable dtb = getTable();
        ////Response.Write(grv.to);
        //try
        //{
        //    StringBuilder sb = new StringBuilder();
        //    //if (ddlLop1.SelectedItem.Text != "")
        //    //{
        //    sb = new StringBuilder();
        //    sb.Append("<table>");
        //    sb.Append("<tr>");
        //    sb.Append("<td colspan='8' align='center'>");
        //    sb.Append("<b style='font-size:20px'>DANH SÁCH HỌC SINH</b>");
        //    sb.Append("</td>");
        //    sb.Append("</tr>");
        //    sb.Append("<tr>");
        //    sb.Append("<td class='Exceltrai'>");
        //    sb.Append("Năm học:" + ddlNam.SelectedItem.Text);
        //    sb.Append("</td>");
        //    sb.Append("</tr>");
        //    sb.Append("<tr>");
        //    sb.Append("<td class='Exceltrai'>");
        //    sb.Append("Mã lớp:" + ddlLop.SelectedValue.ToString());
        //    sb.Append("</td>");
        //    sb.Append("</tr>");
        //    sb.Append("<tr>");
        //    sb.Append("<td class='Exceltrai'>");
        //    sb.Append("Tên lớp:" + ddlLop.SelectedItem.Text);
        //    sb.Append("</td>");
        //    sb.Append("</tr>");
        //    sb.Append("<tr>");
        //    sb.Append("<td class='Exceltrai'>");
        //    sb.Append("Sĩ số:" + SiSo.Text);
        //    sb.Append("</td>");
        //    sb.Append("</tr>");
        //    sb.Append("</table>");
        //    Response.Write(sb.ToString() + "\n");
        //    Response.Flush();
        //    sb = new StringBuilder();
        //    sb.Append("<table border='1' bordercolor='#00aeef' align='center' with='auto'cellspacing='0' cellpadding='0'>");
        //    sb.Append("<tr>");
        //    sb.Append("<td style='text-align:center;font-size:12px;width:10px;'>");
        //    sb.Append("STT");
        //    sb.Append("</td>");
        //    sb.Append("<td style='text-align:center;font-size:12px;width:80px;'>");
        //    sb.Append("Mã học sinh");
        //    sb.Append("</td>");
        //    sb.Append("<td style='text-align:center;font-size:12px;witdh:200px;'>");
        //    sb.Append("Họ và tên học sinh");
        //    sb.Append("</td>");
        //    sb.Append("<td style='text-align:center;font-size:12px;withd:100px'>");
        //    sb.Append("Ngày sinh");
        //    sb.Append("</td>");
        //    sb.Append("<td style='text-align:center;font-size:12px;width:20px'>");
        //    sb.Append("Giới tính");
        //    sb.Append("</td>");
        //    sb.Append("<td style='text-align:center;font-size:12px;witdh:200px'>");
        //    sb.Append("Quê quán");
        //    sb.Append("</td>");
        //    sb.Append("<td style='text-align:center;font-size:12px;width:150px;'>");
        //    sb.Append("Email");
        //    sb.Append("</td>");
        //    sb.Append("<td style='text-align:center;font-size:12px;width:100px;'>");
        //    sb.Append("Số điện thoại");
        //    sb.Append("</td>");
        //    sb.Append("</tr>");
        //    sb.Append("</table>".ToString());
        //    //sb = new StringBuilder();
        //    //sb.Append("Năm học:" + "\t" + ddlNam.SelectedItem.Text);
        //    //Response.Write(sb.ToString() + "\n");
        //    //Response.Flush();
        //    //sb = new StringBuilder();
        //    //sb.Append("Lớp học:" + "\t" + ddlLop.SelectedItem.Text);
        //    //Response.Write(sb.ToString() + "\t");
        //    //Response.Flush();
        //    //sb = new StringBuilder();
        //    //sb.Append("Sĩ số:" + "\t" + SiSo.Text);
        //    //Response.Write(sb.ToString() + "\n");
        //    //Response.Flush();
        //    //sb = new StringBuilder();
        //    //sb.Append("DANH SÁCH HỌC SINH"+"\n");
        //    //Response.Write(sb.ToString() + "\n");
        //    //Response.Flush();
        //    //sb = new StringBuilder();
        //    //sb.Append("STT" + "\t" + "Mã HS" + "\t" + "Họ và Tên học sinh" + "\t" + "Ngày sinh" + "\t" + "Giới Tính" + "\t" + "Quê quán" + "\t" + "Email" + "\t" + "SDT");
        //    Response.Write(sb.ToString() + "<td></td>");
        //    Response.Flush();
        //    int soDem = 0;
        //    while (dt.Rows.Count >= soDem + 1)
        //    {
        //        sb = new StringBuilder();
        //        for (int col = 0; col < dt.Columns.Count - 1; col++)
        //        {
        //            if (dt.Rows[soDem][col] != null)
        //                sb.Append(dt.Rows[soDem][col].ToString().Replace(",", " "));
        //            sb.Append("\t");

        //        }
        //        if (dt.Rows[soDem][dt.Columns.Count - 1] != null)
        //            sb.Append(dt.Rows[soDem][dt.Columns.Count - 1].ToString().Replace(",", " "));

        //        Response.Write(sb.ToString() + "<td></td>");
        //        Response.Flush();
        //        soDem = soDem + 1;
        //    }
        //    //Response.Write(sb.ToString() + "<td></td>");
        //    //Response.Flush();
        //}
        ////}
        //catch (Exception ex)
        //{
        //    Response.Write(ex.Message);
        //}
        //dt.Dispose();
        //Response.End();

    }
    //public DataTable GetData(DropDownList ddlLop)
    //{
    //    DataTable dt1 = new DataTable();
    //    dt1.Columns.Add("STT", typeof(string));
    //    dt1.Columns.Add("MaHS", typeof(string));
    //    dt1.Columns.Add("TenHS", typeof(string));
    //    dt1.Columns.Add("NgaySinh", typeof(string));
    //    dt1.Columns.Add("GioiTinh", typeof(string));
    //    dt1.Columns.Add("QueQuan", typeof(string));
    //    dt1.Columns.Add("Email", typeof(string));
    //    dt1.Columns.Add("SDT", typeof(string));
        
    //    var c = from p in db.Lop_HocSinhs
    //            where
    //                p.MaLop == int.Parse(ddlLop.SelectedValue.ToString())
    //            select new { p.MaHS, p.HocSinh.TenHS, p.HocSinh.GioiTinh, p.HocSinh.QueQuan, p.HocSinh.NgaySinh, p.HocSinh.SDT, p.HocSinh.Email };
    //    if (c.Count() != 0)
    //    {
    //        int soSTT = 1;
    //        foreach (var con in c)
    //        {
    //            DataRow dr = dt1.NewRow();
    //            dr[0] = soSTT;
    //            dr[1] = con.MaHS.ToString();
    //            dr[2] = con.TenHS;
    //            dr[3] = con.NgaySinh.ToShortDateString();
    //            dr[4] = con.GioiTinh;
    //            dr[5] = con.QueQuan;
    //            dr[6] = con.Email;
    //            dr[7] = con.SDT;
    //            dt1.Rows.Add(dr);
    //            soSTT++;
    //        }

    //    }
    //    return dt1;
    //}
    protected void btnMoi_Click(object sender, EventArgs e)
    {
        Refesh();
    }
    void Refesh()
    {
        txtDiaChi.Text = "";
        txtHoTen.Text = "";
        txtSDT.Text = "";
        txtEmail.Text = "";
    }
    protected void btnNhapExcel_Click(object sender, EventArgs e)
    {
        if (fulExcel.HasFile == true)
        {
            if (CheckFileType(fulExcel.FileName) == true)
            {

                string duongdan = Server.MapPath("..\\upload") + "\\" + fulExcel.FileName;
                fulExcel.SaveAs(duongdan);
                ImportFromExcel(duongdan);
            }
            else
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), "Alert", "alert('Flie nhập không đúng định dạng');", true);
            }
        }
        else
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "Alert", "alert('Bạn phải chọn đường dẫn');", true);
        }
        LayDuLieu(ddlNam2, ddlKhoi2, ddlLop2,grvNhapExcel);
        lbtSua.Enabled = true;
      //  lbtDel.Enabled = true;
        lbtExe.Enabled = true;
    }
    void ImportFromExcel(string filePath)
    {
        if (!System.IO.File.Exists(filePath))
        {
            return;
        }

        // Cắt đường dẫn tập tin để kiểm tra xem là xls hay xlsx
        string[] fileParts = filePath.Split('.');

        string connString = "";
        if (filePath.Length > 1 && fileParts[1] == "xls")// sử dụng cho Microsoft Excel 2003
        {
            connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0";
        }
        else // sử dụng cho Microsoft Excel 2007
        {
            connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=Excel 12.0";
        }

        // Tạo đối tượng kết nối
        OleDbConnection oledbConn = new OleDbConnection(connString);
        try
        {
            // Mở kết nối
            oledbConn.Open();

            // Tạo đối tượng OleDBCommand và query data từ sheet có tên "Sheet1"
            OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", oledbConn);

            // Tạo đối tượng OleDbDataAdapter để thực thi việc query lấy dữ liệu từ tập tin excel
            OleDbDataAdapter oleda = new OleDbDataAdapter();

            oleda.SelectCommand = cmd;

            // Tạo đối tượng DataSet để hứng dữ liệu từ tập tin excel
            DataSet ds = new DataSet();

            // Đổ đữ liệu từ tập excel vào DataSet
            oleda.Fill(ds);
            DataTable dt = ds.Tables[0];
            for (int i = 1; i < dt.Rows.Count; i++)
            {
                int c = (from p in db.HocSinhs where p.MaHS == dt.Rows[i][1].ToString() select p).Count();
                if (c == 0)
                {
                    HocSinh cb = new HocSinh();
                    cb.MaHS = dt.Rows[i][1].ToString();
                    cb.TenHS = dt.Rows[i][2].ToString();
                    cb.NgaySinh = DateTime.Parse(dt.Rows[i][3].ToString());
                    cb.GioiTinh = dt.Rows[i][4].ToString();
                    cb.QueQuan = dt.Rows[i][5].ToString();
                    cb.Email = dt.Rows[i][6].ToString();
                    cb.SDT = dt.Rows[i][7].ToString();
                    db.HocSinhs.InsertOnSubmit(cb);
                    Lop_HocSinh lhs = new Lop_HocSinh();
                    lhs.MaHS = dt.Rows[i][1].ToString();
                    lhs.MaLop = int.Parse(ddlLop2.SelectedValue.ToString());
                    lhs.MaNam = int.Parse(ddlNam2.SelectedValue.ToString());
                    db.Lop_HocSinhs.InsertOnSubmit(lhs);
                    db.SubmitChanges();
                }
                if (c != 0)
                {
                    HocSinh cb = db.HocSinhs.SingleOrDefault(p => p.MaHS == dt.Rows[i][1].ToString());
                    cb.TenHS = dt.Rows[i][2].ToString();
                    cb.NgaySinh = DateTime.Parse(dt.Rows[i][3].ToString());
                    cb.GioiTinh = dt.Rows[i][4].ToString();
                    cb.QueQuan = dt.Rows[i][5].ToString();
                    cb.Email = dt.Rows[i][6].ToString();
                    cb.SDT = dt.Rows[i][7].ToString();
                    //  Lop_HocSinh lhs = db.Lop_HocSinhs.SingleOrDefault(p => p.MaHS==dt.Rows[i][1].ToString()&&p.MaLop==);
                    db.SubmitChanges();

                }

            }

            LayDuLieu(ddlNam2, ddlKhoi2, ddlLop2,grvNhapExcel);
        }
        catch
        {
        }
        finally
        {
            //Đóng chuỗi kết nối
            oledbConn.Close();
        }
    }
    private bool CheckFileType(string FileName)
    {
        string ext = Path.GetExtension(FileName);
        if (ext.Equals(".png") || ext.Equals(".xls") || ext.Equals(".xlsx"))
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    protected void ddlKhoi2_SelectedIndexChanged(object sender, EventArgs e)
    {
        LoadLopMoi(ddlLop2,ddlKhoi2);
    }
    void LoadKhoiMoi()
    {
        var c2 = from p in db.KhoiHocs where p.TenKhoi=="Khối 11" || p.TenKhoi=="Khối 12"
                 select p;
        ddlKhoiMoi.DataTextField = "TenKhoi";
        ddlKhoiMoi.DataValueField = "MaKhoi";
        ddlKhoiMoi.DataSource = c2;
        ddlKhoiMoi.DataBind();
    }
    protected void grvDSHS_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        grvDSHS.PageIndex = e.NewPageIndex;
        if (ddlKhoi1.SelectedItem.Text != "" && ddlNam1.SelectedItem.Text != "" && ddlLop1.SelectedItem.Text != "")
        {
            this.LayDuLieu(ddlNam1, ddlKhoi1, ddlLop1,grvDSHS);
        }
        if (ddlLop2.SelectedItem.Text != "" && ddlNam2.SelectedItem.Text != "" && ddlKhoi2.SelectedItem.Text != "")
        {
            this.LayDuLieu(ddlNam2, ddlKhoi2, ddlLop2,grvNhapExcel);
        }
    }
    string LaySiSo(DropDownList Nam, DropDownList Khoi, DropDownList Lop)
    {
        string s = "";
        int i = (from p in db.Lop_HocSinhs
                 where p.MaNam == int.Parse(Nam.SelectedValue.ToString())
                     && p.MaLop == int.Parse(Lop.SelectedValue.ToString())
                     && p.LopHoc.MaKhoi == int.Parse(Khoi.SelectedValue.ToString())
                 select p.MaLop).Count();
        s = i.ToString();
        return s;

    }
    protected void ddlKhoiMoi_SelectedIndexChanged(object sender, EventArgs e)
    {
        LoadLopMoi(ddlLopMoi,ddlKhoiMoi);
    }
    void LoadLopCu()
    {

        var c = (from p in db.Lop_HocSinhs
                 where p.MaNam == int.Parse(ddlNamCu.SelectedValue.ToString())
                     && p.LopHoc.MaKhoi == int.Parse(ddlKhoiCu.SelectedValue.ToString())
                 select new { p.MaLop, p.LopHoc.TenLop }).Distinct();
        ddlLopCu.DataTextField = "TenLop";
        ddlLopCu.DataValueField = "MaLop";
        ddlLopCu.DataSource = c;
        ddlLopCu.DataBind();
    }
   protected void TabContainer1_ActiveTabChanged(object sender, EventArgs e)
   {
   }
   protected void lbtExcel_Click1(object sender, EventArgs e)
   {
       DataTable dt = ToDataTable(db, db.GetData(int.Parse(ddlLop1.SelectedValue),int.Parse( ddlNam1.SelectedValue)));
       xuatExcel(dt, "Danhsachhocsinh_Lop" + ddlLop1.SelectedItem.Text, "DANH SÁCH HỌC SINH");
   }
   protected void lbtThem_Click(object sender, EventArgs e)
   {
       bool kt = true;
       if (txtDiaChi.Text != "" && txtHoTen.Text != "")
       {
           kt = KiemTraMail(txtEmail.Text);
           if (kt == false)
           {
               return;
           }
           kt = KiemSDT(txtSDT.Text);

           if (kt == false)
           {
               return;
           }
           HocSinh hs = new HocSinh();
           hs.MaHS = lblMaHS.Text;
           hs.TenHS = txtHoTen.Text;
           hs.NgaySinh = DateTime.Parse(txtNgaySinh.Text);
           hs.QueQuan = txtDiaChi.Text;
           hs.Email = txtEmail.Text;
           if (rdoNam.Checked == true)
           {
               hs.GioiTinh = "Nam";
           }
           if (rdoNu.Checked == true)
           {
               hs.GioiTinh = "Nữ";
           }
           hs.SDT = txtSDT.Text;
           db.HocSinhs.InsertOnSubmit(hs);
           Lop_HocSinh lhs = new Lop_HocSinh();
           lhs.MaLop = int.Parse(ddlLop1.SelectedValue.ToString());
           lhs.MaNam = int.Parse(ddlNam1.SelectedValue.ToString());
           lhs.MaHS = lblMaHS.Text;
           db.Lop_HocSinhs.InsertOnSubmit(lhs);
           db.SubmitChanges();
           Refesh();
           lbtSua.Visible = true;
          lbtXoa.Visible = true;
           lbtExcel.Visible = true;
       }
       LayDuLieu(ddlNam1, ddlKhoi1, ddlLop1,grvDSHS);
   }
   protected void lbtSua_Click(object sender, EventArgs e)
   {
       bool kt = true;
       for (int i = 0; i < grvDSHS.Rows.Count; i++)
       {

           Label MaHS = (Label)grvDSHS.Rows[i].Cells[2].FindControl("lblMaHS");
           TextBox TenHS = (TextBox)grvDSHS.Rows[i].Cells[2].FindControl("txtTenHS");
           TextBox NgaySinh = (TextBox)grvDSHS.Rows[i].Cells[3].FindControl("txtNgaySinh");
           RadioButton Nam = (RadioButton)grvDSHS.Rows[i].Cells[4].FindControl("rdoNam");
           RadioButton Nu = (RadioButton)grvDSHS.Rows[i].Cells[4].FindControl("rdoNu");
           TextBox DiaChi = (TextBox)grvDSHS.Rows[i].Cells[5].FindControl("txtDiaChi");
           TextBox Email = (TextBox)grvDSHS.Rows[i].Cells[6].FindControl("txtEmail");
           TextBox SDT = (TextBox)grvDSHS.Rows[i].Cells[7].FindControl("txtSDT");
           CheckBox ck = (CheckBox)grvDSHS.Rows[i].Cells[0].FindControl("ckCheck");
           if (ck.Checked == true)
           {

               KiemSDT(SDT.Text);
               if (kt == false)
               { return; }
               KiemTraMail(Email.Text);
               if (kt == false)
               { return; }
               HocSinh hs = db.HocSinhs.SingleOrDefault(p => p.MaHS == MaHS.Text);
               hs.TenHS = TenHS.Text;
               hs.NgaySinh = DateTime.Parse(NgaySinh.Text);
               hs.QueQuan = DiaChi.Text;
               if (Nam.Checked == true)
               {
                   hs.GioiTinh = "Nam";
               }
               if (Nu.Checked == true)
               {
                   hs.GioiTinh = "Nữ";
               }
               hs.Email = Email.Text;
               hs.SDT = SDT.Text;
           }
       }
       db.SubmitChanges();
       LayDuLieu(ddlNam1, ddlKhoi1, ddlLop1,grvDSHS);
   }
   protected void lbtUD_Click(object sender, EventArgs e)
   {
        bool kt = true;
       for (int i = 0; i < grvNhapExcel.Rows.Count; i++)
       {
           Label MaHS = (Label)grvNhapExcel.Rows[i].Cells[2].FindControl("lblMaHS");
           TextBox TenHS = (TextBox)grvNhapExcel.Rows[i].Cells[2].FindControl("txtTenHS");
           TextBox NgaySinh = (TextBox)grvNhapExcel.Rows[i].Cells[3].FindControl("txtNgaySinh");
           RadioButton Nam = (RadioButton)grvNhapExcel.Rows[i].Cells[4].FindControl("rdoNam");
           RadioButton Nu = (RadioButton)grvNhapExcel.Rows[i].Cells[4].FindControl("rdoNu");
           TextBox DiaChi = (TextBox)grvNhapExcel.Rows[i].Cells[5].FindControl("txtDiaChi");
           TextBox Email = (TextBox)grvNhapExcel.Rows[i].Cells[6].FindControl("txtEmail");
           TextBox SDT = (TextBox)grvNhapExcel.Rows[i].Cells[7].FindControl("txtSDT");
           CheckBox ck = (CheckBox)grvNhapExcel.Rows[i].Cells[0].FindControl("ckCheck");
           if (ck.Checked == true)
           {
               if (TenHS.Text != "" && txtDiaChi.Text != "")
               {
                   KiemSDT(SDT.Text);
                   if (kt == false)
                   {
                       return; 
                   }
                   KiemTraMail(Email.Text);
                   if (kt == false)
                   {
                       return;
                   }
                   //Response.Write(MaHS.Text);
                   HocSinh hs = db.HocSinhs.SingleOrDefault(p => p.MaHS == MaHS.Text);
                   hs.TenHS = TenHS.Text;
                   hs.NgaySinh = DateTime.Parse(NgaySinh.Text);
                   hs.QueQuan = DiaChi.Text;
                   if (Nam.Checked == true)
                   {
                       hs.GioiTinh = "Nam";
                   }
                   if (Nu.Checked == true)
                   {
                       hs.GioiTinh = "Nữ";
                   }
                   hs.Email = Email.Text;
                   hs.SDT = SDT.Text;
               }
           }
       }
       db.SubmitChanges();
       LayDuLieu(ddlNam2, ddlKhoi2, ddlLop2,grvNhapExcel);
   }
   protected void  lbtex_Click(object sender, EventArgs e)
{

    DataTable dt = ToDataTable(db, db.GetData(int.Parse(ddlLop2.SelectedValue), int.Parse(ddlNam2.SelectedValue)));
    xuatExcel(dt, "Danhsachhocsinh_Lop" + ddlLop2.SelectedItem.Text, "DANH SÁCH HỌC SINH");
}
   protected void TabContainer_ActiveTabChanged(object sender, EventArgs e)
   {
      
       //if (TabContainer1.TabIndex == 0)
       //{
       //    LayDuLieu(ddlNam1,ddlKhoi1,ddlLop1);
       //}
      
       //    if (TabContainer1.TabIndex == 1)
       //    {
       //        LayDuLieu(ddlNam2, ddlKhoi2, ddlLop2);
       //    }
       //   if(TabContainer1.TabIndex==2)
       //    {

       //        LayDuLieu(ddlNam, ddlKhoi, ddlLop);
       //    }
   }
   //protected void lbtUD_Click1(object sender, EventArgs e)
   //{

   //}
   protected void lbtDL_Click(object sender, EventArgs e)
   {

   }
}
